package com.geekaca.d05;

import java.util.ArrayList;
import java.util.Iterator;

public class TestListUpdate {
    public static void main(String[] args) {
        /**
         * 集入的遍历 过程中的
         * 删除和修改
         */
        ArrayList<String> list = new ArrayList<>();
        list.add("极客咖");
        list.add("Java");
        list.add("Java");
        list.add("赵敏");
        list.add("赵敏");
        list.add("素素");
        System.out.println(list);

        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            if("Java".equals(next)){ //把Java写前面为了避免空指针异常
//                list.remove(next); // ConcurrentModificationException 不允许在Iterator迭代过程中,list.remove
                iterator.remove();
            }
        }
        System.out.println(list);

        // foreach 遍历 , 删除
//        list.forEach(item->iterator.remove());
//        list.forEach(item->list.remove(item)); // 不能删除,只能读取 无论是否用lambda表达式

        for (int i = list.size()-1; i >=0; i--) {  // 倒序删除元素
            String s = list.get(i);
            if("素素".equals(s)){
                list.remove(s);
            }
        }
        System.out.println(list);

    }
}
